// 创建仓库
import Vuex from 'vuex';
import Vue from 'vue'

// 引入子模块user 和shop
import user from './modules/user'
import shop from './modules/shop'

// 引入vuex 的持久化插件 vuex-persistedstate
import createPersistedState from "vuex-persistedstate";
Vue.use(Vuex)


const store = new Vuex.Store({
    state: {
        count: 0
    },
    mutations: { // 修改state的同步方法
        addcount(state) {
            state.count++
        },
        jiancount(state, payload) {
            state.count -= payload
        }
    },
    actions: { // 修改state 的异步方法
        addcountAsync({ commit }) {
            setTimeout(() => {
                commit('addcount')
            }, 2000)
        },
        jiancountAsync({ commit }, payload) {
            setTimeout(() => {
                commit('jiancount', payload)
            }, 2000)
        }
    },
    getters: { // 相当于仓库中的计算属性
        doublecount(state) {
            return state.count * 2
        }
    },
    modules: { // 子模块,每一个子模块都有自己的state,mutations actions getters
        user,
        shop
    },
    plugins: [createPersistedState({
        storage: sessionStorage
    })], // 配置插件

})

export default store

